<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>this练习题</title>
</head>

<body>
    <script>
        //  //T1.
        // function fun () {
        //     console.log(this.s);
        // }
        // var obj = {
        //     s: 1,
        //     f: fun,
        // };
        // var s = 2;
        // obj.f();
        //输出1

        // //T2.
        // function fun () {
        //     console.log(this.s);
        //     var obj = {
        //         s: 1,
        //         f: fun,
        //     };
        // }
        // var s = 2;
        // fun();
        //输出：2

        // //T3.
        // var A = {
        //     name: "jmq",
        //     f: function () {
        //         console.log(this.name);
        //     },
        // };
        // let B = {
        //     name: "syc",
        // };
        // B.f = A.f;
        // A.f();
        // B.f();
        //输出：jmq syc

        // //T4.
        // function fo() {
        //   console.log(this.a);
        // }
        // var o1 = {
        //   a: 3,
        // };
        // var o2 = {
        //   a: 6,
        // };
        // var a = 9;
        // o1.f = fo;
        // console.log(o1);
        // o2.f = o1.f;
        // o1.f(); // 输出什么？3
        // o2.f(); // 输出什么？6

        ////T5.
        // function foo () {
        //     console.log(this.a);
        // }
        // var obj2 = {
        //     a: 2,
        //     fn: foo,
        // };
        // var obj1 = {
        //     a: 1,
        //     o1: obj2,
        // };
        // obj1.o1.fn(); // 输出的是啥？ 2

        // //T6.△
        // var a = 10;
        // var obj = {
        //     a: 120,
        //     method: function () {
        //         var bar = function () {
        //             console.log(this.a); // 输出什么？10
        //         };
        //         bar();
        //         return this.a; // 输出什么？120
        //     },
        // };
        // console.log(obj.method());
        // obj调用method()时，执行了89行，obj.method()获得92行的返回值

      //T7.
      // var fullName = "language";
      // var obj = {
      //   fullName: "javascript",
      //   prop: {
      //     getFullName: function () {
      //       return this.fullName;
      //     },
      //   },
      // };
      // console.log(obj.prop.getFullName()); // 这里输出什么？ javascript
      // var test = obj.prop.getFullName;
      // console.log(test()); // 这里输出什么   language

      // //T8.
      // function fn() {
      //   console.log(this);
      // }
      // setInterval(fn, 1000); // 这里打印啥？

      // //T9.
      // var k = {
      //   a: 1,
      //   sing: function () {
      //     console.log(this);
      //   },
      // };
      // setTimeout(k.sing(), 1000); // 这里打印的是啥？

      // //T10.
      // var value = 8;
      // var obj = {
      //   value: 10,
      //   fn: () => {
      //     console.log(this.value); //打印什么
      //   },
      // };
      // obj.fn();
    </script>
</body>

</html>